package com.jxtc.enterprise.common.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.time.LocalDateTime;

@Getter
@Setter
@ToString
@TableName(value = "transaction_record")
public class TransactionRecord {
    /**
     * uuid
     */
    @TableId(type = IdType.ASSIGN_UUID)
    private String id;
    /**
     * 公司 ID
     */
    private String companyId;
    /**
     * 交易的发起方，员工点餐时，交易发起方为员工id；即员工向平台账户发起一笔交易
     */
    private String fromId;
    /**
     * 交易的接收方，员工点餐时，交易的接收方为系统账号；即员工向平台账户发起一笔交易
     */
    private String toId;
    /**
     * 交易金额，单位为分
     */
    private Integer amount;
    /**
     * 关联的订单 ID
     * 交易类型为 1, 2, 5 时为用户点餐订单 ID
     * 交易类型为 3, 4 时为虚拟订单 ID，0100000000000000000，20个字符
     */
    private String orderId;
    /**
     * 交易类型，定义多种情形，如订餐支付、退款、充值等
     * 1 表示订餐支付费用
     * 2 员工取消订单，平台向员工退还费用
     * 3 表示HR批量充值
     * 4 表示HR单独为员工充值
     * 5 员工投诉，平台向员工补偿费用
     * 具体对应关系详见 com.jxtc.enterprise.common.constants.TransactionTypeEnum 枚举
     */
    private Integer transactionType;
    /**
     * 交易创建时间，在创建时默认传值，不需要手动操作
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;
}
